//
// Description: 826. 单链表
// Created by Loading on 2021/12/5.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 100010;

// head 表示头结点的下标
// e[i] 表示节点 i 的值
// ne[i] 表示节点 i 的 next 指针的值
// idx 表示当前已经插入的点下标
int head, e[N], ne[N], idx;

// 初始化
void init() {
    head = -1;
    idx = 0;
}

// 将 x 插入到头结点
void add_to_head(int x) {
    e[idx] = x;
    ne[idx] = head;
    head = idx++;
}

// 将 x 插入到下标为 k 的节点后面
void add(int x, int k) {
    e[idx] = x;
    ne[idx] = ne[k];
    ne[k] = idx++;
}

// 将下标为 k + 1 的节点删除
void remove(int k) {
    ne[k] = ne[ne[k]];
}

int main() {
    init();

    int m;
    cin >> m;
    while (m--) {
        char op;
        cin >> op;
        if (op == 'H') {
            int x;
            cin >> x;
            add_to_head(x);
        } else if (op == 'D') {
            int k;
            cin >> k;
            if (!k) {
                // 删除第一个节点
                head = ne[head];
            } else {
                // 第 k 个，下标为 k - 1
                remove(k - 1);
            }
        } else if (op == 'I') {
            int k, x;
            cin >> k >> x;
            add(x, k - 1);
        }
    }

    for (int i = head; i != -1; i = ne[i]) {
        cout << e[i] << ' ';
    }
    cout << endl;

    return 0;
}